Contact centers are employed by many enterprises to service customer contacts. A typical contact center includes a switch and/or server to receive and route incoming packet-switched and/or circuit-switched contacts and one or more resources, such as human agents and automated resources (e.g., Interactive Voice Response (IVR) units), to service the incoming contacts. Contact centers distribute contacts, whether inbound or outbound, for servicing to any suitable resource according to predefined criteria. In many existing systems, the criteria for servicing the contact from the moment that the contact center becomes aware of the contact until the contact is connected to an agent are customer-specifiable (i.e., programmable by the operator of the contact center), via a capability called vectoring. Normally in present-day Automated Contact Distributors (ACDs) when the ACD system's controller detects that an agent has become available to handle a contact, the controller identifies all predefined contact-handling queues for the agent (usually in some order of priority) and delivers to the available agent the highest-priority oldest contact that matches the agent's highest-priority queue.
Best service routing is one example of a routing logic used in centralized and distributed contact centers. In current best service routing, each ACD in the contact center uses a single message to represent a single skill and further describe the state of that skill. Copies of this single skill message are transmitted to all other ACDs in the contact center, thereby updating every ACD with the same state information for the transmitting ACD. By keeping each ACD in a contact center aware of all other ACD states, a uniform work item routing logic can be applied by all ACDs and intelligent routing decisions can be made in a distributed contact center.
One problem with current best service routing algorithms is that they are not sensitive to the amount of time which it will take to process a work item. This means that a queue may be ordered such that a first work item requiring a significant amount of time to process may have a higher queue position than a second work item requiring a minimal amount of time to process. This queue order may have been determined on a First In First Out (FIFO) basis or some other non-time-sensitive analysis of the work items. It does not seem logical from either the customer's standpoint or the contact center's standpoint to make the second work item wait for processing of the first work item, especially when the amount of wait time for the first work item would not substantially change if the second work item were queued ahead of it.